{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "76880a32-5836-429f-8a49-7800f80c4234",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 鸢尾花分类"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "f569b65d-684e-4755-bfbe-09fb12859e5a",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 导入必要的库\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn import datasets\n",
    "from sklearn.model_selection import train_test_split, cross_val_score, StratifiedKFold\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.metrics import accuracy_score, classification_report, confusion_matrix\n",
    "from sklearn.svm import SVC  # 支持向量机\n",
    "from sklearn.linear_model import LogisticRegression  # 逻辑回归\n",
    "from sklearn.tree import DecisionTreeClassifier  # 决策树\n",
    "from sklearn.ensemble import RandomForestClassifier  # 随机森林\n",
    "\n",
    "# 加载鸢尾花数据集\n",
    "iris = datasets.load_iris()\n",
    "X = iris.data  # 特征\n",
    "y = iris.target  # 标签\n",
    "feature_names = iris.feature_names  # 特征名称\n",
    "\n",
    "# 数据预处理：标准化特征值\n",
    "scaler = StandardScaler()\n",
    "X_scaled = scaler.fit_transform(X)\n",
    "\n",
    "# 划分训练集和测试集\n",
    "X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.3, random_state=42)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "a309f191-d4c9-477d-9274-8eb120fd711e",
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_results(X, labels, title):\n",
    "    \"\"\"绘制分类结果\"\"\"\n",
    "    plt.figure(figsize=(8, 6))\n",
    "    for i in np.unique(labels):\n",
    "        plt.scatter(X[labels == i, 0], X[labels == i, 1], label=f'Class {i}')\n",
    "    plt.title(title)\n",
    "    plt.xlabel('Feature 0')\n",
    "    plt.ylabel('Feature 1')\n",
    "    plt.legend()\n",
    "    plt.show()\n",
    "\n",
    "def evaluate_classifier(classifier, X_train, X_test, y_train, y_test, name):\n",
    "    \"\"\"评估分类器性能并绘制分类结果\"\"\"\n",
    "    classifier.fit(X_train, y_train)\n",
    "    y_pred = classifier.predict(X_test)\n",
    "    \n",
    "    print(f\"\\n{name} Results:\")\n",
    "    print(f\"Accuracy: {accuracy_score(y_test, y_pred):.4f}\")\n",
    "    print(f\"Classification Report:\\n{classification_report(y_test, y_pred)}\")\n",
    "    print(f\"Confusion Matrix:\\n{confusion_matrix(y_test, y_pred)}\")\n",
    "    \n",
    "    plot_results(X_test, y_pred, f'{name} Classification Results')\n",
    "\n",
    "def evaluate_with_cross_validation(classifier, X, y, cv=5):\n",
    "    \"\"\"使用交叉验证评估分类器\"\"\"\n",
    "    cv_scores = cross_val_score(classifier, X, y, cv=cv)\n",
    "    print(f\"Cross-validation accuracy: {cv_scores.mean():.4f} (+/- {cv_scores.std() * 2:.4f})\")\n",
    "\n",
    "def feature_importance_analysis(classifier, feature_names):\n",
    "    \"\"\"分析特征重要性\"\"\"\n",
    "    if hasattr(classifier, \"feature_importances_\"):\n",
    "        importances = classifier.feature_importances_\n",
    "        indices = np.argsort(importances)[::-1]\n",
    "        print(\"Feature ranking:\")\n",
    "        for f in range(len(feature_names)):\n",
    "            print(f\"{f + 1}. feature {feature_names[indices[f]]} ({importances[indices[f]]:.4f})\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "c245a4f9-ddf2-4c24-b50d-433f7a1bde63",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "SVM Results:\n",
      "Accuracy: 0.9778\n",
      "Classification Report:\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       1.00      1.00      1.00        19\n",
      "           1       1.00      0.92      0.96        13\n",
      "           2       0.93      1.00      0.96        13\n",
      "\n",
      "    accuracy                           0.98        45\n",
      "   macro avg       0.98      0.97      0.97        45\n",
      "weighted avg       0.98      0.98      0.98        45\n",
      "\n",
      "Confusion Matrix:\n",
      "[[19  0  0]\n",
      " [ 0 12  1]\n",
      " [ 0  0 13]]\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAIhCAYAAABZvOJuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAABYrUlEQVR4nO3de3wU1f3/8fdkIYm5LUbITWMIAkK4KAFjuSjQooAapVSBqlwU/H1B0GKogqUI8UagFakX0lYtaPGCVqFgbRBE1AoIGFEwliqEBCUhYDQBYgjZnd8fMStLLiSw2d1JXs/HYx91z5zZ+cxsmrw5e/aMYZqmKQAAAMBCAnxdAAAAANBYhFgAAABYDiEWAAAAlkOIBQAAgOUQYgEAAGA5hFgAAABYDiEWAAAAlkOIBQAAgOUQYgEAAGA5hFgAtfroo4/0y1/+UhdeeKGCgoIUHR2tvn37asaMGZKkQ4cOKTAwUGPGjKnzNUpLSxUSEqLrr79ekrRs2TIZhiHDMLRx48Ya/U3TVMeOHWUYhgYNGtSgOp1Op/7+979ryJAhatu2rVq3bq2oqChdd911WrNmjZxOpyRp3759MgxDy5Yta9R18KQJEyaoffv2bm3FxcUaM2aMoqKiZBiGRowYIUkyDEPz5s1rsloeffRRrVq1qkb7xo0b63x/mtqECRNcPx+GYSgwMFAXXXSRfvvb36q0tNTr9Zyqtmvz1ltvNen7BKBuhFgANfzrX/9Sv379VFpaqoULF+rtt9/Wn/70J/Xv318rVqyQJLVr107XX3+9Vq1ape+++67W13nllVf0ww8/aOLEiW7t4eHheu6552r0f++997Rnzx6Fh4c3qM7y8nJdc801Gj9+vKKiopSZmakNGzboz3/+s+Li4nTTTTdpzZo1jTz7pjNnzhytXLnSre2hhx7SypUr9fjjj2vz5s1auHChJGnz5s2aNGlSk9VSV4hNTk7W5s2blZyc3GTHrs8555yjzZs3a/PmzVq9erUGDx6sxx57TDfeeKNP6jmdt956S+np6b4uA2iRWvm6AAD+Z+HChUpMTNTatWvVqtVPvybGjBnjClmSNHHiRL3++ut68cUXNW3atBqv87e//U3R0dG69tpr3dpHjx6tF198UU8//bQiIiJc7c8995z69u3b4FG3tLQ0rV27Vs8//7zGjRvntm3kyJG699579cMPPzTotbzhoosuqtG2a9cuXXTRRbrlllvc2n/2s595qyw3ERERPju2JAUEBLgdf9iwYdq7d6/WrVun3NxcJSYm+qw2AP6FkVgANXz77bdq27atW4CtFhDw06+NoUOH6oILLtDSpUtr9Pviiy/00Ucfady4cTVe59e//rUk6eWXX3a1lZSU6PXXX9ftt9/eoBoLCwv17LPPaujQoTUCbLVOnTqpZ8+edb7GV199pdtuu02dOnVSSEiIzj//fKWmpmrnzp1u/ZxOpx5++GFdfPHFOuecc9SmTRv17NlTf/rTn1x9Dh06pP/3//6f4uPjFRQUpHbt2ql///5av369q8/J0wmqpzesX79eX3zxRY1pFrVNJ/jmm29cxwgMDFRcXJxuvPFGHTx4UFLVyPSMGTN06aWXym63KzIyUn379tU///lPt9cxDEPHjh3T888/7zpu9fSNuqYTrF69Wn379lVISIjCw8N11VVXafPmzW595s2bJ8Mw9Pnnn+vXv/617Ha7oqOjdfvtt6ukpKTO9+F0+vTpI0mu86y2YsUK9e3bV6GhoQoLC9PQoUP1ySefuPXZu3evxowZo7i4ONe0mF/84hfasWOH2/WobUpA+/btNWHChDrrmjBhgp5++mnXa1Q/9u3bJ0l67bXXdPnll8tutyskJEQdOnRo8M83gNMjxAKooW/fvvroo490991366OPPtKJEydq7RcQEKAJEyYoOztbn376qdu26mBb2x/tiIgI3Xjjjfrb3/7manv55ZcVEBCg0aNHN6jGd999VydOnHDNIT0TBw4c0HnnnaeMjAxlZWXp6aefVqtWrXT55Zdr9+7drn4LFy7UvHnz9Otf/1r/+te/tGLFCk2cOFHff/+9q8/YsWO1atUqPfDAA3r77bf17LPPasiQIfr2229rPXZsbKw2b96sXr16qUOHDq6P0Ov6GP+bb77RZZddppUrVyotLU3//ve/tXjxYtntdtd0juPHj6u4uFi//e1vtWrVKr388ssaMGCARo4cqRdeeMH1Wps3b9Y555yja665xnXcJUuW1HmdXnrpJd1www2KiIjQyy+/rOeee07fffedBg0apP/85z81+v/qV79S586d9frrr2vWrFl66aWXdM8999T7XtQnNzdXrVq1UocOHVxtjz76qH79618rKSlJr776qv7+97/ryJEjuuKKK5STk+Pqd8011+jjjz/WwoULtW7dOmVmZqpXr15u792ZmjNnjmuaQ/V13Lx5s+u9HT16tDp06KBXXnlF//rXv/TAAw+osrLyrI8L4EcmAJzi8OHD5oABA0xJpiSzdevWZr9+/cz58+ebR44cceu7d+9e0zAM8+6773a1nThxwoyJiTH79+/v1nfp0qWmJHPbtm3mu+++a0oyd+3aZZqmaV522WXmhAkTTNM0zW7dupkDBw6st8aMjAxTkpmVldWgc8rNzTUlmUuXLq2zT2VlpVlRUWF26tTJvOeee1zt1113nXnppZfW+/phYWHm9OnT6+0zfvx4MyEhwa1t4MCBZrdu3Wr0lWTOnTvX9fz22283W7dubebk5NR7jJNVVlaaJ06cMCdOnGj26tXLbVtoaKg5fvz4GvtUvy/vvvuuaZqm6XA4zLi4OLNHjx6mw+Fw9Tty5IgZFRVl9uvXz9U2d+5cU5K5cOFCt9e88847zeDgYNPpdNZb7/jx483Q0FDzxIkT5okTJ8zDhw+bmZmZZkBAgPm73/3O1S8/P99s1aqVedddd7ntf+TIETMmJsYcNWqUaZpVP8eSzMWLF9d73FOvdbWEhAS3a3TqtTFN05w6dapZ25/SP/7xj6Yk8/vvv6/32ADOHCOxAGo477zz9MEHH2jbtm3KyMjQDTfcoP/973+6//771aNHDx0+fNjVNzExUYMHD9aLL76oiooKSdK///1vFRYW1vvR6cCBA3XRRRfpb3/7m3bu3Klt27Z5/aPWyspKPfroo0pKSlJgYKBatWqlwMBAffnll/riiy9c/VJSUvTpp5/qzjvv1Nq1a2uds5uSkqJly5bp4Ycf1pYtW+ocvT5T//73vzV48GB17dq13n6vvfaa+vfvr7CwMLVq1UqtW7fWc88953Y+jbF7924dOHBAY8eOdZtKEhYWpl/96lfasmWLysrK3PapXo2iWs+ePVVeXq6ioqLTHu/YsWNq3bq1WrdurbZt22rKlCkaPXq0HnnkEVeftWvXqrKyUuPGjVNlZaXrERwcrIEDB7qmQkRGRuqiiy7SH/7wBy1atEiffPKJa7WKpnbZZZdJkkaNGqVXX31V33zzjVeOC7QkhFgAderTp49mzpyp1157TQcOHNA999yjffv2uX25S6r6gte3336r1atXS6qaShAWFqZRo0bV+dqGYei2227T8uXL9ec//1mdO3fWFVdc0eDaLrzwQklVHzWfqbS0NM2ZM0cjRozQmjVr9NFHH2nbtm265JJL3L4Qdv/99+uPf/yjtmzZouHDh+u8887TL37xC23fvt3VZ8WKFRo/fryeffZZ9e3bV5GRkRo3bpwKCwvPuL6THTp0SBdccEG9fd544w2NGjVK559/vpYvX67Nmze7/nFQXl5+Rsetng4RGxtbY1tcXJycTmeN1SnOO+88t+dBQUGS1KAv2Z1zzjnatm2btm3bpjVr1mjQoEF6+eWXlZGR4epTPTf2sssucwXe6seKFStc/8gyDEPvvPOOhg4dqoULFyo5OVnt2rXT3XffrSNHjjTiKjTelVdeqVWrVrnC9gUXXKDu3bu7zQMHcHYIsQAapHXr1po7d66kqm/Un2zkyJE699xz9be//U2HDh3Sm2++qdGjRyssLKze15wwYYIOHz6sP//5z7rtttsaVc/gwYPVunXrWpeJaqjly5dr3LhxevTRRzV06FClpKSoT58+biPNktSqVSulpaUpOztbxcXFevnll7V//34NHTrUNQrZtm1bLV68WPv27VNeXp7mz5+vN954o94vBjVGu3bt9PXXX5/2fBITE7VixQqNGDFCP/vZz9SnTx8dP378jI9bHUgLCgpqbDtw4IACAgJ07rnnnvHrnyogIEB9+vRRnz59dN111ykrK0vdunVTenq69u/fL6nqWkvSP/7xD1fgPfnx0UcfuV4vISFBzz33nAoLC7V7927dc889WrJkie69915Xn6CgoFqvUV3zmRvqhhtu0DvvvKOSkhJt3LhRF1xwgW6++eYaX4gDcGYIsQBqqC2wSHJ9JB0XF+fWHhwcrJtvvllvv/22FixYoBMnTjRoasD555+ve++9V6mpqRo/fnyjaoyJidGkSZO0du1aty8tnWzPnj367LPP6nwNwzBco4TV/vWvf9X70W+bNm104403aurUqSouLnZ9E/1kF154oaZNm6arrrpK2dnZDTuh0xg+fLjeffddty+cnar6BgGGYbjaCgsLa6xOIFUFt4aMjF588cU6//zz9dJLL8k0TVf7sWPH9Prrr7tWLGgqQUFBevrpp1VeXq6HH35YUtWqGK1atdKePXtcgffUR206d+6s3//+9+rRo4fb+9K+ffsaPycbNmzQ0aNHG1SfVP8oc1BQkAYOHKgFCxZIUo0VFACcGdaJBVBD9dJZqamp6tKli5xOp3bs2KHHHntMYWFh+s1vflNjn4kTJ+rpp5/WokWL1KVLF/Xr169Bxzr5Y+LGWrRokfbu3asJEyZo7dq1+uUvf6no6GgdPnxY69at09KlS/XKK6/UuczWddddp2XLlqlLly7q2bOnPv74Y/3hD3+o8bF9amqqunfvrj59+qhdu3bKy8vT4sWLlZCQoE6dOqmkpESDBw/WzTffrC5duig8PFzbtm1TVlaWRo4cecbnd7IHH3xQ//73v3XllVfqd7/7nXr06KHvv/9eWVlZSktLU5cuXXTdddfpjTfe0J133qkbb7xR+/fv10MPPaTY2Fh9+eWXbq/Xo0cPbdy4UWvWrFFsbKzCw8N18cUX1zhuQECAFi5cqFtuuUXXXXed/u///k/Hjx/XH/7wB33//fdn9f411MCBA3XNNddo6dKlmjVrlhITE/Xggw9q9uzZ2rt3r4YNG6Zzzz1XBw8e1NatWxUaGqr09HR99tlnmjZtmm666SZ16tRJgYGB2rBhgz777DPNmjXL9fpjx47VnDlz9MADD2jgwIHKycnRU089JbvdftraevToIUlasGCBhg8fLpvNpp49e+rhhx/W119/rV/84he64IIL9P333+tPf/qTWrdurYEDBzbZtQJaFF9/swyA/1mxYoV58803m506dTLDwsLM1q1bmxdeeKE5duzYer8d36tXr1q/nV7t5NUJ6tOQ1QmqVVZWms8//7z585//3IyMjDRbtWpltmvXzhw+fLj50ksvub5RX9vqBN999505ceJEMyoqygwJCTEHDBhgfvDBB+bAgQPdjv/YY4+Z/fr1M9u2bWsGBgaaF154oTlx4kRz3759pmmaZnl5uTl58mSzZ8+eZkREhHnOOeeYF198sTl37lzz2LFjrtc5m9UJTNM09+/fb95+++1mTEyM2bp1azMuLs4cNWqUefDgQVefjIwMs3379mZQUJDZtWtX85lnnnGtGnCyHTt2mP379zdDQkJMSa7zre0b+KZpmqtWrTIvv/xyMzg42AwNDTV/8YtfmB9++KFbn+rjHDp0yK29+n3Pzc2tcZ4nq16doDY7d+40AwICzNtuu82tpsGDB5sRERFmUFCQmZCQYN54443m+vXrTdM0zYMHD5oTJkwwu3TpYoaGhpphYWFmz549zccff9ysrKx0vc7x48fN++67z4yPjzfPOeccc+DAgeaOHTsatDrB8ePHzUmTJpnt2rUzDcNwneebb75pDh8+3Dz//PPNwMBAMyoqyrzmmmvMDz74oN5rAKDhDNM86fMhAAAAwAKYEwsAAADLIcQCAADAcgixAAAAsBxCLAAAACyHEAsAAADLIcQCAADAclrUzQ6cTqcOHDig8PBwtzvaAAAAwD+YpqkjR44oLi5OAQF1j7e2qBB74MABxcfH+7oMAAAAnMb+/ftr3EHxZC0qxIaHh0uquigRERE+rgYAAACnKi0tVXx8vCu31aVFhdjqKQQRERGEWAAAAD92uqmffLELAAAAlkOIBQAAgOUQYgEAAGA5LWpOLAAAaNlM01RlZaUcDoevS2mxbDabWrVqddbLnRJiAQBAi1BRUaGCggKVlZX5upQWLyQkRLGxsQoMDDzj1yDEAgCAZs/pdCo3N1c2m01xcXEKDAzkxkc+YJqmKioqdOjQIeXm5qpTp0713tCgPoRYAADQ7FVUVMjpdCo+Pl4hISG+LqdFO+ecc9S6dWvl5eWpoqJCwcHBZ/Q6fLELAAC0GGc66gfP8sT7wDsJAAAAyyHEAgAAwHIIsQAAAM2AYRhatWqVr8vwGkIsAACAnyssLNRdd92lDh06KCgoSPHx8UpNTdU777zj69IkVa06MG/ePMXFxemcc87RoEGD9PnnnzfpMQmxAAAAjeBwmtq851v9c8c32rznWzmcZpMeb9++ferdu7c2bNighQsXaufOncrKytLgwYM1derUJj12Qy1cuFCLFi3SU089pW3btikmJkZXXXWVjhw50mTHJMQC8Eve/iMBAA2RtatAAxZs0K+f2aLfvLJDv35miwYs2KCsXQVNdsw777xThmFo69atuvHGG9W5c2d169ZNaWlp2rJlS537zZw5U507d1ZISIg6dOigOXPm6MSJE67tn376qQYPHqzw8HBFRESod+/e2r59uyQpLy9PqampOvfccxUaGqpu3brprbfeqvU4pmlq8eLFmj17tkaOHKnu3bvr+eefV1lZmV566SXPXoyTsE4sAL+TtatA6WtyVFBS7mqLtQdrbmqShnWP9WFlAFqyrF0FmrI8W6f+k7qwpFxTlmcr89Zkj/+OKi4uVlZWlh555BGFhobW2N6mTZs69w0PD9eyZcsUFxennTt36o477lB4eLjuu+8+SdItt9yiXr16KTMzUzabTTt27FDr1q0lSVOnTlVFRYXef/99hYaGKicnR2FhYbUeJzc3V4WFhbr66qtdbUFBQRo4cKA2bdqk//u//zuLK1A3QiwAv+KLPxIAcDoOp6n0NTk1fjdJkinJkJS+JkdXJcXIFuC5O4F99dVXMk1TXbp0afS+v//9713/3b59e82YMUMrVqxwhdj8/Hzde++9rtfu1KmTq39+fr5+9atfqUePHpKkDh061HmcwsJCSVJ0dLRbe3R0tPLy8hpdd0MxnQCA3zjdHwmp6o8EUwsAeNvW3GK3T4dOZUoqKCnX1txijx7XNKt+353JLXL/8Y9/aMCAAYqJiVFYWJjmzJmj/Px81/a0tDRNmjRJQ4YMUUZGhvbs2ePadvfdd+vhhx9W//79NXfuXH322WenPd6pNZqm2aS39iXEAvAbvvojAQCnU3Sk7t9NZ9KvoTp16iTDMPTFF180ar8tW7ZozJgxGj58uN5880198sknmj17tioqKlx95s2bp88//1zXXnutNmzYoKSkJK1cuVKSNGnSJO3du1djx47Vzp071adPHz355JO1HismJkbSTyOy1YqKimqMznoSIRaA3/DVHwkAOJ2o8GCP9muoyMhIDR06VE8//bSOHTtWY/v3339f634ffvihEhISNHv2bPXp00edOnWq9aP9zp0765577tHbb7+tkSNHaunSpa5t8fHxmjx5st544w3NmDFDzzzzTK3HSkxMVExMjNatW+dqq6io0Hvvvad+/fo18owbjhALwG/46o8EAJxOSmKkYu3BquvDcUNVX0BNSYz0+LGXLFkih8OhlJQUvf766/ryyy/1xRdf6IknnlDfvn1r3adjx47Kz8/XK6+8oj179uiJJ55wjbJK0g8//KBp06Zp48aNysvL04cffqht27apa9eukqTp06dr7dq1ys3NVXZ2tjZs2ODaVuPcDUPTp0/Xo48+qpUrV2rXrl2aMGGCQkJCdPPNN3v8elTji10A/Eb1H4nCkvJa58UakmKa6I8EANTHFmBobmqSpizPliG5/Y6qDrZzU5M8+qWuaomJicrOztYjjzyiGTNmqKCgQO3atVPv3r2VmZlZ6z433HCD7rnnHk2bNk3Hjx/Xtddeqzlz5mjevHlV52Oz6dtvv9W4ceN08OBBtW3bViNHjlR6erokyeFwaOrUqfr6668VERGh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QizgYcO6xyrz1mTF2N2nDMTYg1leCwAAD2GJLaAJDOseq6uSYrhjFwAATYQQCzQRW4Chvhed5+syAABolphOAAAAAMshxAIAAMByCLEAAACwHEIsAAAALIcQCwAAAMshxAIAAMByCLEAAACwHEIsAAAALIcQCwAAAMshxAIAAMByCLEAAACwHEIsAAAALIcQCwAAAMshxAIAAMByCLEAAACwHEIsAAAALIcQCwAAAMshxAIAAMByCLEAAACwHEIsAAAALIcQCwAAAMshxAIAAMByLBNi58+fr8suu0zh4eGKiorSiBEjtHv3bl+XBQAAAB+wTIh97733NHXqVG3ZskXr1q1TZWWlrr76ah07dszXpQEAAMDLDNM0TV8XcSYOHTqkqKgovffee7ryyisbtE9paansdrtKSkoUERHRxBUCAACgsRqa11p5sSaPKikpkSRFRkbW2ef48eM6fvy463lpaWmT1wUAAICmZ5npBCczTVNpaWkaMGCAunfvXme/+fPny263ux7x8fFerBLwLYfT1OY93+qfO77R5j3fyuG05IcuAADUypLTCaZOnap//etf+s9//qMLLrigzn61jcTGx8cznQDNXtauAqWvyVFBSbmrLdYerLmpSRrWPdaHlQEAUL+GTiew3EjsXXfdpdWrV+vdd9+tN8BKUlBQkCIiItweQHOXtatAU5ZnuwVYSSosKdeU5dnK2lXgo8oAAPAcy4RY0zQ1bdo0vfHGG9qwYYMSExN9XRLgdxxOU+lrclTbxyvVbelrcphaAACwPMuE2KlTp2r58uV66aWXFB4ersLCQhUWFuqHH37wdWmA39iaW1xjBPZkpqSCknJtzS32XlEAADQBy4TYzMxMlZSUaNCgQYqNjXU9VqxY4evSAL9RdKTuAHsm/QAA8FeWWWLLgt8/A7wuKjzYo/0AAPBXlhmJBXB6KYmRirUHy6hju6GqVQpSEuteXxkAACsgxALNiC3A0NzUJEmqEWSrn89NTZItoK6YCwCANRBigWZmWPdYZd6arBi7+5SBGHuwMm9NZp1YAECzYJk5sQAablj3WF2VFKOtucUqOlKuqPCqKQSMwAIAmgtCLNBM2QIM9b3oPF+XAQBAk2A6AQAAACyHEAsAAADLIcQCAADAcgixAAAAsBxCLAAAACyHEAsAAADLIcQCAADAclgnFqiDw2lyswAf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",
      "text/plain": [
       "<Figure size 800x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Cross-validation accuracy: 0.9667 (+/- 0.0596)\n"
     ]
    }
   ],
   "source": [
    "# 方法1: 使用支持向量机 (SVM) 进行分类\n",
    "svm_classifier = SVC(kernel='linear', C=1, random_state=42, probability=True)\n",
    "evaluate_classifier(svm_classifier, X_train, X_test, y_train, y_test, \"SVM\")\n",
    "evaluate_with_cross_validation(svm_classifier, X_scaled, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "a7133a74-6d6a-4b66-afe8-d0fd8e6506f7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Logistic Regression Results:\n",
      "Accuracy: 1.0000\n",
      "Classification Report:\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       1.00      1.00      1.00        19\n",
      "           1       1.00      1.00      1.00        13\n",
      "           2       1.00      1.00      1.00        13\n",
      "\n",
      "    accuracy                           1.00        45\n",
      "   macro avg       1.00      1.00      1.00        45\n",
      "weighted avg       1.00      1.00      1.00        45\n",
      "\n",
      "Confusion Matrix:\n",
      "[[19  0  0]\n",
      " [ 0 13  0]\n",
      " [ 0  0 13]]\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAIhCAYAAABZvOJuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAABfOklEQVR4nO3de1xUdf7H8fcwcpHbKCqghoi3FO9omLfS1mvGZve2vFTmrqa1hltqZmhlaluumyXddtXWtqwtW237YZrZzVw1tDSqTUOwBDFJUAiRmfP7g5gcuQg6MHPg9Xw85lHzPd8z53POAPP2zPd8j8UwDEMAAACAifh4ugAAAACgpgixAAAAMB1CLAAAAEyHEAsAAADTIcQCAADAdAixAAAAMB1CLAAAAEyHEAsAAADTIcQCAADAdAixQBVWrVoli8WiXbt21el2hwwZoiFDhtRonbS0NM2fP18HDx4st+y2225T27Zt3VLb/PnzZbFYnA9fX1+1adNGkydPVnZ2tlu2YQbuPKbnIz8/XwsXLlTfvn0VGhoqf39/tW3bVnfccYdSU1Od/cp+hiv6uagrbdu21W233ebStnv3bl1++eWy2WyyWCxatmyZtm7dKovFoq1bt9ZKHYcPH9b8+fO1Z8+ecsvKfq49oW3bti6/U0FBQYqLi9PTTz8tb7ipZkXHZsWKFVq1apVnCgJ+0cjTBQAob8WKFTVeJy0tTQsWLNCQIUPKhat58+bpj3/8o5uqK5WSkiKbzaaTJ0/q3Xff1ZNPPqlt27Zpz5498vX1deu2vFFtHNPqOnDggEaMGKGcnBxNmTJFCxYsUHBwsA4ePKjXXntNffr00fHjx2Wz2TxS39nWrVun0NBQl7Y77rhDBQUFevXVV9W0aVO1bdtWgYGB+vTTTxUbG1srdRw+fFgLFixQ27Zt1atXL5dld955p0aNGlUr262OgQMH6oknnpBUWufSpUt19913Kz8/Xw888IDH6qrMihUr1Lx583L/OAHqEiEW8ELu/hBv3769W19Pkvr06aPmzZtLkoYNG6Yff/xRK1eu1Mcff6yhQ4e6fXuVMQxDRUVFaty4cZ1tU6qdY1oddrtd11xzjX788Ud9+umn6tatm3PZ5ZdfrokTJ+r//u//vOofEr179y7Xtm/fPk2ePFmjR492ab/00kvrqiwXF110kS666CKPbFuSmjRp4rLvw4YNU5s2bfTcc895ZYgFvAHDCQA3+Pjjj/Wb3/xGISEhCgwM1IABA/Sf//ynwn79+/dXQECAWrdurXnz5unFF18s93VvRcMJkpOT1bNnTwUHByskJESdO3d2fritWrVKN9xwgyRp6NChzq8ly77uq+irb4fDoeXLl6tXr15q3Lix80N0/fr153UM+vbtK0k6cuSIS/vmzZv1m9/8RqGhoQoMDNTAgQP13nvvlVv/3//+t3r06CF/f3+1a9dOf/3rXyv8GtNisWj69Ol69tln1aVLF/n7+2v16tWSpG+//Va33HKLwsPD5e/vry5duuiZZ54pt9+PPvqoLr74Yud+9+jRQ3/961+dfY4eParf//73ioqKkr+/v1q0aKGBAwdq8+bNzj4VHdOioiLNmTNHMTEx8vPzU+vWrTVt2jQdP37cpV/btm111VVXKSUlRXFxcWrcuLE6d+6sv//97+c8zm+99Zb27t2rOXPmuATYM40ePVqBgYGVvsamTZt09dVX66KLLlJAQIA6dOigP/zhD/rxxx9d+lXnOOzevVtXXXWV85i3atVKY8aM0ffff++yv2Vn7MqGN5SUlCg5Odn5syqp0uEE//3vf5WQkKBmzZopICBA7du314wZM5zL9+/fr9tvv10dO3ZUYGCgWrdurYSEBO3du9fZZ+vWrbrkkkskSbfffrtzu/Pnz5dU8VfmDodDjz/+uDp37ix/f3+Fh4drwoQJLvsmlf6+duvWTTt37tTgwYMVGBiodu3aafHixXI4HJW+D1UJDQ1Vp06dyv0+FRcX69FHH3XW1KJFC91+++06evSoS78tW7ZoyJAhatasmRo3bqw2bdrouuuuU2FhofN4VHSsDx486PK3oyJt27bVl19+qQ8++MB5HMt+F6rz+wW4C2digQv0wQcfaPjw4erRo4f+9re/yd/fXytWrFBCQoJeeeUV3XTTTZKkL774QsOHD1enTp20evVqBQYG6tlnn9WaNWvOuY1XX31Vd911l+6++2498cQT8vHx0f79+5WWliZJGjNmjB577DE98MADeuaZZxQXFyep6rOFt912m9asWaNJkybp4Ycflp+fn1JTU8977GR6erokqVOnTs62NWvWaMKECbr66qu1evVq+fr66rnnntPIkSO1ceNG/eY3v5FUOjTh2muv1WWXXaa1a9eqpKRETzzxRLkP8DJvvfWWPvroIz300EOKjIxUeHi40tLSNGDAALVp00ZPPvmkIiMjtXHjRt1zzz368ccflZSUJEl6/PHHNX/+fD344IO67LLLdPr0aX399dcuQXP8+PFKTU3VwoUL1alTJx0/flypqak6duxYpftvGIbGjh2r9957T3PmzNHgwYP1xRdfKCkpSZ9++qk+/fRT+fv7O/t//vnnmjlzpmbPnq2IiAi9+OKLmjRpkjp06KDLLrus0u28++67kqSxY8dW/YZU4cCBA+rfv7/uvPNO2Ww2HTx4UEuXLtWgQYO0d+9e51nccx2HgoICDR8+XDExMXrmmWcUERGh7Oxsvf/++zpx4kSF2x4zZow+/fRT9e/fX9dff71mzpxZZa0bN25UQkKCunTpoqVLl6pNmzY6ePCg8zhIpV+/N2vWTIsXL1aLFi2Um5ur1atXq1+/ftq9e7cuvvhixcXFaeXKlbr99tv14IMPasyYMZJU5dnXqVOn6vnnn9f06dN11VVX6eDBg5o3b562bt2q1NRU5zcRkpSdna1bb71VM2fOVFJSktatW6c5c+aoVatWmjBhQvXemDOUlJTo0KFDLr9PDodDV199tT766CPdf//9GjBggDIyMpSUlKQhQ4Zo165daty4sQ4ePKgxY8Zo8ODB+vvf/64mTZrohx9+UEpKioqLi6v8B051rFu3Ttdff71sNptz6FPZz3Z1fr8AtzEAVGrlypWGJGPnzp2V9rn00kuN8PBw48SJE862kpISo1u3bsZFF11kOBwOwzAM44YbbjCCgoKMo0ePOvvZ7XYjNjbWkGSkp6c72y+//HLj8ssvdz6fPn260aRJkyprff311w1Jxvvvv19u2cSJE43o6Gjn8w8//NCQZMydO7fK16xIUlKSIcnIzs42Tp8+bfz000/Ga6+9ZgQFBRm/+93vnP0KCgqMsLAwIyEhwWV9u91u9OzZ04iPj3e2XXLJJUZUVJRx6tQpZ9uJEyeMZs2aGWf/mZJk2Gw2Izc316V95MiRxkUXXWTk5eW5tE+fPt0ICAhw9r/qqquMXr16VbmPwcHBxowZM6rsc/YxTUlJMSQZjz/+uEu/tWvXGpKM559/3tkWHR1tBAQEGBkZGc62n3/+2QgLCzP+8Ic/VLndUaNGGZKMoqKiKvuVKfsZPvPn60wOh8M4ffq0kZGRYUgy/v3vfzuXnes47Nq1y5BkvPXWW1XWEB0dbUycONGlTZIxbdo0l7b333+/3M9w+/btjfbt2xs///xzlds4U0lJiVFcXGx07NjRuPfee53tO3fuNCQZK1euLLdO2c91ma+++sqQZNx1110u/f773/8akowHHnjA2Xb55Zcbkoz//ve/Ln1jY2ONkSNHnrPe6Oho48orrzROnz7tfC8mT55s+Pr6Gm+//baz3yuvvGJIMt544w2X9cv2a8WKFYZhGMa//vUvQ5KxZ8+eSrdZ0bE2DMNIT08vd4zOPjaGYRhdu3Z1+RtVpjq/X4C7MJwAuAAFBQX673//q+uvv17BwcHOdqvVqvHjx+v777/XN998I6n0jO0VV1zhcvbGx8dHN9544zm3Ex8fr+PHj+t3v/ud/v3vf5f72rem/u///k+SNG3atPN+jcjISPn6+qpp06a68cYb1adPH+fX+pK0bds25ebmauLEiSopKXE+HA6HRo0apZ07d6qgoEAFBQXatWuXxo4dKz8/P+f6wcHBSkhIqHDbV1xxhZo2bep8XlRUpPfee0/XXHONAgMDXbZ35ZVXqqioSNu3b5dUeiw///xz3XXXXdq4caPy8/PLvX58fLxWrVqlRx99VNu3b9fp06fPeTy2bNkiSeUudLnhhhsUFBRUbghFr1691KZNG+fzgIAAderUSRkZGefc1oUquyAsKipKjRo1kq+vr6KjoyVJX331lbPfuY5Dhw4d1LRpU82aNUvPPvus85sBd/nf//6nAwcOaNKkSQoICKi0X0lJiR577DHFxsbKz89PjRo1kp+fn7799luX/amJ999/X1L59zM+Pl5dunQp935GRkYqPj7epa1Hjx7Vfj/feecd+fr6Ot+LF154QcuXL3eeMZakt99+W02aNFFCQoLLz3ivXr0UGRnpHBrQq1cv+fn56fe//71Wr16t7777roZ7f/6q8/sFuAshFrgAP/30kwzDUMuWLcsta9WqlSQ5v3o9duyYIiIiyvWrqO1s48eP19///ndlZGTouuuuU3h4uPr166dNmzadV91Hjx6V1WpVZGTkea0vlY513blzpzZu3KjrrrtOH374oe6++27n8rKhANdff73zw7nssWTJEhmGodzcXOcxrMmxOft4Hzt2TCUlJVq+fHm5bV155ZWS5Az+c+bM0RNPPKHt27dr9OjRatasmX7zm9+4TKO2du1aTZw4US+++KL69++vsLAwTZgwocopxI4dO6ZGjRqpRYsWLu0Wi0WRkZHlhiI0a9as3Gv4+/vr559/rnQbkpzBt2z4Rk05HA6NGDFCb775pu6//36999572rFjhzPkn7n9cx0Hm82mDz74QL169dIDDzygrl27qlWrVkpKSqpW8D+XsnGe57rgKjExUfPmzdPYsWO1YcMG/fe//9XOnTvVs2fPcx7PypS9X5X9brvr/SwzaNAg7dy5U9u3b9c//vEPtW3bVtOnT9fHH3/s7HPkyBEdP35cfn5+5X7Os7OznT/j7du31+bNmxUeHq5p06apffv2at++fZ2MS63O7xfgLoyJBS5A06ZN5ePjo6ysrHLLDh8+LEnOM6/NmjWrcIxndedWvf3223X77beroKBAH374oZKSknTVVVfpf//7n/MsWnW1aNFCdrtd2dnZFX5IV0fPnj2d+zZ8+HCNHDlSzz//vCZNmqRLLrnEuWz58uWVXnEeERGh06dPy2Kx1OjYnH0BTtOmTZ1nvys7uxwTEyNJatSokRITE5WYmKjjx49r8+bNeuCBBzRy5EgdOnRIgYGBat68uZYtW6Zly5YpMzNT69ev1+zZs5WTk6OUlJQKX79Zs2YqKSnR0aNHXYKsYRjKzs52XlR0ocqO81tvvaXZs2fXeP19+/bp888/16pVqzRx4kRn+/79+8v1rc5x6N69u1599VUZhqEvvvhCq1at0sMPP6zGjRufV31nKjuOZ19IdbaysdePPfaYS/uPP/6oJk2anNe2y0JpVlZWuRB9+PBhl29U3MFmszkvjuzXr5/69eunnj176q677tKePXvk4+Oj5s2bq1mzZpX+DIaEhDj/f/DgwRo8eLDsdrt27dql5cuXa8aMGYqIiNDNN9/sPLN96tQpl9e40G95qvP7BbgLZ2KBCxAUFKR+/frpzTffdDnj4nA4tGbNGl100UXOCzMuv/xybdmyxeVDwuFw6PXXX6/xNkePHq25c+equLhYX375paRfL6yozpmfsmmNkpOTa7TtylgsFj3zzDOyWq168MEHJZXOe9mkSROlpaWpb9++FT78/PwUFBSkvn376q233lJxcbHzNU+ePKm33367WtsPDAzU0KFDtXv3bvXo0aPCbVV0pqxJkya6/vrrNW3aNOXm5lZ4UVubNm00ffp0DR8+3OUmAmcru0jt7Av13njjDRUUFDiXX6irr75a3bt316JFi7Rv374K+2zcuNF5FfrZyv4BcOZFZpL03HPPVbndcx0Hi8Winj176i9/+YuaNGlS5bGqrk6dOql9+/b6+9//Xi5snb3ts/fnP//5j3744QeXtpr8jlxxxRWSyr+fO3fu1FdffeW297MyHTt21P3336+9e/dq7dq1kqSrrrpKx44dk91ur/Bn/OKLLy73OlarVf369XPO0lH2vpTNJvDFF1+49K/u7CTVOctcnd8v4EJwJhaohi1btlT4B/jKK6/UokWLNHz4cA0dOlR/+tOf5OfnpxUrVmjfvn165ZVXnKFh7ty52rBhg37zm99o7ty5aty4sZ599lkVFBRIKh0fW5nJkyercePGGjhwoFq2bKns7GwtWrRINpvNeYavbLql559/XiEhIQoICFBMTEyF4W3w4MEaP368Hn30UR05ckRXXXWV/P39tXv3bgUGBroMC6iujh076ve//71WrFihjz/+WIMGDdLy5cs1ceJE5ebm6vrrr1d4eLiOHj2qzz//XEePHnWG6IcfflhjxozRyJEj9cc//lF2u11//vOfFRwcrNzc3Gpt/69//asGDRqkwYMHa+rUqWrbtq1OnDih/fv3a8OGDc4xqwkJCerWrZv69u2rFi1aKCMjQ8uWLVN0dLQ6duyovLw8DR06VLfccos6d+6skJAQ7dy50zmDQmXKzkbPmjVL+fn5GjhwoHN2gt69e2v8+PE1PqYVsVqtWrdunUaMGKH+/ftr6tSpGjp0qIKCgpSRkaF//etf2rBhg3766acK1+/cubPat2+v2bNnyzAMhYWFacOGDeWGplTnOLz99ttasWKFxo4dq3bt2skwDL355ps6fvy4hg8f7pb9feaZZ5SQkKBLL71U9957r9q0aaPMzExt3LhRL7/8sqTScLdq1Sp17txZPXr00GeffaY///nP5c6gtm/fXo0bN9bLL7+sLl26KDg4WK1atXIO/TnTxRdfrN///vdavny5fHx8NHr0aOfsBFFRUbr33nvdsn9V+dOf/qRnn31WCxYs0I033qibb75ZL7/8sq688kr98Y9/VHx8vHx9ffX999/r/fff19VXX61rrrlGzz77rLZs2aIxY8aoTZs2Kioqck7fNmzYMEmlY3iHDRumRYsWqWnTpoqOjtZ7772nN998s1q1lZ2BX7t2rdq1a6eAgAB17979nL9fgFt58KIywOuVXdld2aPsiu+PPvrIuOKKK4ygoCCjcePGxqWXXmps2LCh3Ot99NFHRr9+/Qx/f38jMjLSuO+++4wlS5YYkozjx487+509O8Hq1auNoUOHGhEREYafn5/RqlUr48YbbzS++OILl9dftmyZERMTY1itVpcrjM++kt4wSmcJ+Mtf/mJ069bN8PPzM2w2m9G/f/8K6z5T2ZXKZ86yUObIkSNGcHCwMXToUGfbBx98YIwZM8YICwszfH19jdatWxtjxowxXn/9dZd1161bZ3Tv3t3w8/Mz2rRpYyxevNi45557jKZNm7r0UwVXtZdJT0837rjjDqN169aGr6+v0aJFC2PAgAHGo48+6uzz5JNPGgMGDDCaN2/u3NakSZOMgwcPGoZhGEVFRcaUKVOMHj16GKGhoUbjxo2Niy++2EhKSjIKCgqcr1PRMf3555+NWbNmGdHR0Yavr6/RsmVLY+rUqcZPP/3k0i86OtoYM2ZMufrPft+rcvz4ceORRx4x4uLijODgYMPX19do06aNMW7cOOOTTz5x9qtodoK0tDRj+PDhRkhIiNG0aVPjhhtuMDIzMw1JRlJSUrWPw9dff2387ne/M9q3b280btzYsNlsRnx8vLFq1apy+3u+sxMYhmF8+umnxujRow2bzWb4+/sb7du3d5l14KeffjImTZpkhIeHG4GBgcagQYOMjz76qMLj+corrxidO3c2fH19Xfa3oivw7Xa7sWTJEqNTp06Gr6+v0bx5c2PcuHHGoUOHXPpdfvnlRteuXcu9RxX9jFSksp8HwzCMZ555xpBkrF692jAMwzh9+rTxxBNPGD179jQCAgKM4OBgo3PnzsYf/vAH49tvv3Uer2uuucaIjo42/P39jWbNmhmXX365sX79epfXzsrKMq6//nojLCzMsNlsxrhx45wzTpxrdoKDBw8aI0aMMEJCQgxJzv081+8X4E4Ww/CCGzMDDdiIESN08OBB/e9///N0KV7l9OnT6tWrl1q3bu0yJygAABLDCYA6lZiYqN69eysqKkq5ubl6+eWXtWnTJv3tb3/zdGkeN2nSJA0fPtw5XOLZZ5/VV199xZ1+AAAVIsQCdchut+uhhx5Sdna2LBaLYmNj9Y9//EPjxo3zdGked+LECf3pT3/S0aNH5evrq7i4OL3zzjvOMXwAAJyJ4QQAAAAwHabYAgAAgOkQYgEAAGA6hFgAAACYToO6sMvhcOjw4cMKCQkpd9tKAAAAeJ5hGDpx4oRatWpV5Y2AGlSIPXz4sKKiojxdBgAAAM7h0KFD5e68d6YGFWJDQkIklR6U0NBQD1cDAACAs+Xn5ysqKsqZ2yrToEJs2RCC0NBQQiwAAIAXO9fQTy7sAgAAgOkQYgEAAGA6hFgAAACYToMaEwsAABo2wzBUUlIiu93u6VIaLKvVqkaNGl3wdKeEWAAA0CAUFxcrKytLhYWFni6lwQsMDFTLli3l5+d33q9BiAUAAPWew+FQenq6rFarWrVqJT8/P2585AGGYai4uFhHjx5Venq6OnbsWOUNDapCiAUAAPVecXGxHA6HoqKiFBgY6OlyGrTGjRvL19dXGRkZKi4uVkBAwHm9Dhd2AQCABuN8z/rBvdzxPvBOAgAAwHQIsQAAADAdQiwAAEA9YLFY9NZbb3m6jDpDiAUAAPBy2dnZuvvuu9WuXTv5+/srKipKCQkJeu+99zxdmqTSWQfmz5+vVq1aqXHjxhoyZIi+/PLLWt0mIRYAAKAG7A5Dnx44pn/v+UGfHjgmu8Oo1e0dPHhQffr00ZYtW/T4449r7969SklJ0dChQzVt2rRa3XZ1Pf7441q6dKmefvpp7dy5U5GRkRo+fLhOnDhRa9skxALwSnX9IQEA1ZGyL0uDlmzR717Yrj++uke/e2G7Bi3ZopR9WbW2zbvuuksWi0U7duzQ9ddfr06dOqlr165KTEzU9u3bK11v1qxZ6tSpkwIDA9WuXTvNmzdPp0+fdi7//PPPNXToUIWEhCg0NFR9+vTRrl27JEkZGRlKSEhQ06ZNFRQUpK5du+qdd96pcDuGYWjZsmWaO3eurr32WnXr1k2rV69WYWGh/vnPf7r3YJyBeWIBeJ2UfVlasCFNWXlFzraWtgAlJcRqVLeWHqwMQEOWsi9LU9ek6ux/UmfnFWnqmlQlj4tz+9+o3NxcpaSkaOHChQoKCiq3vEmTJpWuGxISolWrVqlVq1bau3evJk+erJCQEN1///2SpFtvvVW9e/dWcnKyrFar9uzZI19fX0nStGnTVFxcrA8//FBBQUFKS0tTcHBwhdtJT09Xdna2RowY4Wzz9/fX5Zdfrm3btukPf/jDBRyByhFiAXgVT3xIAMC52B2GFmxIK/e3SZIMSRZJCzakaXhspKw+7rsT2P79+2UYhjp37lzjdR988EHn/7dt21YzZ87U2rVrnSE2MzNT9913n/O1O3bs6OyfmZmp6667Tt27d5cktWvXrtLtZGdnS5IiIiJc2iMiIpSRkVHjuquL4QQAvMa5PiSk0g8JhhYAqGs70nNdvh06myEpK69IO9Jz3bpdwyj9e3c+t8j917/+pUGDBikyMlLBwcGaN2+eMjMzncsTExN15513atiwYVq8eLEOHDjgXHbPPffo0Ucf1cCBA5WUlKQvvvjinNs7u0bDMGr11r6EWABew1MfEgBwLjknKv/bdD79qqtjx46yWCz66quvarTe9u3bdfPNN2v06NF6++23tXv3bs2dO1fFxcXOPvPnz9eXX36pMWPGaMuWLYqNjdW6deskSXfeeae+++47jR8/Xnv37lXfvn21fPnyCrcVGRkp6dczsmVycnLKnZ11J0IsAK/hqQ8JADiX8JAAt/arrrCwMI0cOVLPPPOMCgoKyi0/fvx4het98sknio6O1ty5c9W3b1917Nixwq/2O3XqpHvvvVfvvvuurr32Wq1cudK5LCoqSlOmTNGbb76pmTNn6oUXXqhwWzExMYqMjNSmTZucbcXFxfrggw80YMCAGu5x9RFiAXgNT31IAMC5xMeEqaUtQJV9OW5R6QWo8TFhbt/2ihUrZLfbFR8frzfeeEPffvutvvrqKz311FPq379/het06NBBmZmZevXVV3XgwAE99dRTzrOskvTzzz9r+vTp2rp1qzIyMvTJJ59o586d6tKliyRpxowZ2rhxo9LT05WamqotW7Y4l5Xbd4tFM2bM0GOPPaZ169Zp3759uu222xQYGKhbbrnF7cejDBd2AfAaZR8S2XlFFY6LtUiKrKUPCQCoitXHoqSEWE1dkyqL5PI3qizYJiXEuvWirjIxMTFKTU3VwoULNXPmTGVlZalFixbq06ePkpOTK1zn6quv1r333qvp06fr1KlTGjNmjObNm6f58+eX7o/VqmPHjmnChAk6cuSImjdvrmuvvVYLFiyQJNntdk2bNk3ff/+9QkNDNWrUKP3lL3+ptMb7779fP//8s+666y799NNP6tevn959912FhIS4/XiUsRhlI4a9XHJyspKTk3Xw4EFJUteuXfXQQw9p9OjR1X6N/Px82Ww25eXlKTQ0tJYqBXAhymYnkCr+kGB2AgDno6ioSOnp6YqJiVFAwPl/m8MUgO5R1ftR3bxmmjOxF110kRYvXqwOHTpIklavXq2rr75au3fvVteuXT1cHQB3GdWtpZLHxZX7kIjkQwKAFxjVraWGx0ZqR3quck4UKTyk9Nuh2jgDi6qZ5kxsRcLCwvTnP/9ZkyZNqlZ/zsQC5mF3GHxIAHAbd52JhXs0qDOxZ7Lb7Xr99ddVUFBQ6YBmSTp16pROnTrlfJ6fn18X5QFwA6uPRf3bN/N0GQAAL2Wq2Qn27t2r4OBg+fv7a8qUKVq3bp1iY2Mr7b9o0SLZbDbnIyoqqg6rBQAAQG0xVYi9+OKLtWfPHm3fvl1Tp07VxIkTlZaWVmn/OXPmKC8vz/k4dOhQHVYLAACA2mKq4QR+fn7OC7v69u2rnTt36q9//auee+65Cvv7+/vL39+/LksEAABAHTDVmdizGYbhMuYVAAAADYNpzsQ+8MADGj16tKKionTixAm9+uqr2rp1q1JSUjxdGgAAAOqYaULskSNHNH78eGVlZclms6lHjx5KSUnR8OHDPV0aAAAA6phpQuzf/vY3T5cAAADgtSwWi9atW6exY8d6upQ6YeoxsQAAAA1Bdna27r77brVr107+/v6KiopSQkKC3nvvPU+XJkl68803NXLkSDVv3lwWi0V79uyp9W2a5kwsAACAV3DYpYxt0skjUnCEFD1A8rHW2uYOHjyogQMHqkmTJnr88cfVo0cPnT59Whs3btS0adP09ddf19q2q6ugoEADBw7UDTfcoMmTJ9fJNjkTCwAAUF1p66Vl3aTVV0lvTCr977Jupe215K677pLFYtGOHTt0/fXXq1OnTuratasSExO1ffv2StebNWuWOnXqpMDAQLVr107z5s3T6dOnncs///xzDR06VCEhIQoNDVWfPn20a9cuSVJGRoYSEhLUtGlTBQUFqWvXrnrnnXcq3db48eP10EMPadiwYe7b8XPgTCwAAEB1pK2XXpsgyXBtz88qbb/xJSn2t27dZG5urlJSUrRw4UIFBQWVW96kSZNK1w0JCdGqVavUqlUr7d27V5MnT1ZISIjuv/9+SdKtt96q3r17Kzk5WVarVXv27JGvr68kadq0aSouLtaHH36ooKAgpaWlKTg42K37dqEIsQAAAOfisEsps1QuwEq/tFmklNlS5zFuHVqwf/9+GYahzp0713jdBx980Pn/bdu21cyZM7V27VpniM3MzNR9993nfO2OHTs6+2dmZuq6665T9+7dJUnt2rW7kN2oFQwnAAAAOJeMbVL+4So6GFL+D6X93MgwSkOzxWKp8br/+te/NGjQIEVGRio4OFjz5s1TZmamc3liYqLuvPNODRs2TIsXL9aBAwecy+655x49+uijGjhwoJKSkvTFF19c+M64GSEWAADgXE4ecW+/aurYsaMsFou++uqrGq23fft23XzzzRo9erTefvtt7d69W3PnzlVxcbGzz/z58/Xll19qzJgx2rJli2JjY7Vu3TpJ0p133qnvvvtO48eP1969e9W3b18tX77crft2oQixAAAA5xIc4d5+1RQWFqaRI0fqmWeeUUFBQbnlx48fr3C9Tz75RNHR0Zo7d6769u2rjh07KiMjo1y/Tp066d5779W7776ra6+9VitXrnQui4qK0pQpU/Tmm29q5syZeuGFF9y2X+5AiAUAADiX6AFSaCtJlX2tb5FCW5f2c7MVK1bIbrcrPj5eb7zxhr799lt99dVXeuqpp9S/f/8K1+nQoYMyMzP16quv6sCBA3rqqaecZ1kl6eeff9b06dO1detWZWRk6JNPPtHOnTvVpUsXSdKMGTO0ceNGpaenKzU1VVu2bHEuq0hubq727NmjtLQ0SdI333yjPXv2KDs7241HwhUhFgAA4Fx8rNKoJb88OTvI/vJ81OJamS82JiZGqampGjp0qGbOnKlu3bpp+PDheu+995ScnFzhOldffbXuvfdeTZ8+Xb169dK2bds0b94853Kr1apjx45pwoQJ6tSpk2688UaNHj1aCxYskCTZ7XZNmzZNXbp00ahRo3TxxRdrxYoVlda4fv169e7dW2PGjJEk3Xzzzerdu7eeffZZNx4JVxajbMRwA5Cfny+bzaa8vDyFhoZ6uhwAAFBHioqKlJ6erpiYGAUEBJz/C6WtL52l4MyLvEJblwZYN0+vVZ9V9X5UN68xxRYAAEB1xf62dBqtOrxjFypGiAUAAKgJH6sUM9jTVTR4jIkFAACA6RBiAQAAYDqEWAAAAJgOIRYAAACmQ4gFAACA6RBiAQAAYDqEWAAAAJgOIRYAAKAesFgseuuttzxdRp0hxAIAANSA3WHXzuydeue7d7Qze6fsDnutbzM7O1t333232rVrJ39/f0VFRSkhIUHvvfderW/7XE6fPq1Zs2ape/fuCgoKUqtWrTRhwgQdPnz43CtfAO7YBQAAUE2bMzZr8Y7FOlJ4xNkWERih2fGzNSx6WK1s8+DBgxo4cKCaNGmixx9/XD169NDp06e1ceNGTZs2TV9//XWtbLe6CgsLlZqaqnnz5qlnz5766aefNGPGDP32t7/Vrl27am27nIkFAACohs0Zm5W4NdElwEpSTmGOErcmanPG5lrZ7l133SWLxaIdO3bo+uuvV6dOndS1a1clJiZq+/btla43a9YsderUSYGBgWrXrp3mzZun06dPO5d//vnnGjp0qEJCQhQaGqo+ffo4Q2dGRoYSEhLUtGlTBQUFqWvXrnrnnXcq3I7NZtOmTZt044036uKLL9all16q5cuX67PPPlNmZqZ7D8YZOBMLAABwDnaHXYt3LJYho9wyQ4YssmjJjiUaGjVUVh+r27abm5urlJQULVy4UEFBQeWWN2nSpNJ1Q0JCtGrVKrVq1Up79+7V5MmTFRISovvvv1+SdOutt6p3795KTk6W1WrVnj175OvrK0maNm2aiouL9eGHHyooKEhpaWkKDg6udt15eXmyWCxV1nehCLEAAADnkJqTWu4M7JkMGcouzFZqTqouibzEbdvdv3+/DMNQ586da7zugw8+6Pz/tm3baubMmVq7dq0zxGZmZuq+++5zvnbHjh2d/TMzM3Xdddepe/fukqR27dpVe7tFRUWaPXu2brnlFoWGhta47upiOAEAAMA5HC086tZ+1WUYpWd+LRZLjdf917/+pUGDBikyMlLBwcGaN2+ey9f7iYmJuvPOOzVs2DAtXrxYBw4ccC6755579Oijj2rgwIFKSkrSF198Ua1tnj59WjfffLMcDodWrFhR45prghALAABwDi0CW7i1X3V17NhRFotFX331VY3W2759u26++WaNHj1ab7/9tnbv3q25c+equLjY2Wf+/Pn68ssvNWbMGG3ZskWxsbFat26dJOnOO+/Ud999p/Hjx2vv3r3q27evli9fXuU2T58+rRtvvFHp6enatGlTrZ6FlQixAAAA5xQXHqeIwAhZVPEZUYssigyMVFx4nFu3GxYWppEjR+qZZ55RQUFBueXHjx+vcL1PPvlE0dHRmjt3rvr27auOHTsqIyOjXL9OnTrp3nvv1bvvvqtrr71WK1eudC6LiorSlClT9Oabb2rmzJl64YUXKq2z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7NlTTz/9tKdLgZf44IMPNG3aNG3fvl2bNm1SSUmJRowYoYKCAk+XhjMwxRYatFWrVmnGjBk6fvy4p0tBHerXr5/i4uKUnJzsbOvSpYvGjh2rRYsWebAyeJrFYtG6des0duxYT5cCL3L06FGFh4frgw8+0GWXXebpcvALzsQCaFCKi4v12WefacSIES7tI0aM0LZt2zxUFQBvlpeXJ0kKCwvzcCU4EyEWQIPy448/ym63KyIiwqU9IiJC2dnZHqoKgLcyDEOJiYkaNGiQunXr5ulycAZCLOqN+fPny2KxVPnYtWuXp8uEl7BYLC7PDcMo1wYA06dP1xdffKFXXnnF06XgLI08XQDgLtOnT9fNN99cZZ+2bdvWTTHwWs2bN5fVai131jUnJ6fc2VkADdvdd9+t9evX68MPP9RFF13k6XJwFkIs6o3mzZurefPmni4DXs7Pz099+vTRpk2bdM011zjbN23apKuvvtqDlQHwFoZh6O6779a6deu0detWxcTEeLokVIAQiwYpMzNTubm5yszMlN1u1549eyRJHTp0UHBwsGeLQ61LTEzU+PHj1bdvX/Xv31/PP/+8MjMzNWXKFE+XBg84efKk9u/f73yenp6uPXv2KCwsTG3atPFgZfCUadOm6Z///Kf+/e9/KyQkxPnNjc1mU+PGjT1cHcowxRYapNtuu02rV68u1/7+++9ryJAhdV8Q6tyKFSv0+OOPKysrS926ddNf/vIXps5poLZu3aqhQ4eWa584caJWrVpV9wXB4yobH79y5UrddtttdVsMKkWIBQAAgOkwOwEAAABMhxALAAAA0yHEAgAAwHQIsQAAADAdQiwAAABMhxALAAAA0yHEAgAAwHQIsQAAADAdQiwAAABMhxALABfotttuk8ViKffYv3+/W15/1apVatKkiVte60KsWLFCMTExCggIUJ8+ffTRRx95uiQADRghFgDcYNSoUcrKynJ5xMTEeLqsck6fPn1e661du1YzZszQ3LlztXv3bg0ePFijR49WZmammysEgOohxAKAG/j7+ysyMtLlYbVaJUkbNmxQnz59FBAQoHbt2mnBggUqKSlxrrt06VJ1795dQUFBioqK0l133aWTJ09KkrZu3arbb79deXl5zjO88+fPlyRZLBa99dZbLnU0adJEq1atkiQdPHhQFotFr732moYMGaKAgACtWbNGkrRy5Up16dJFAQEB6ty5s1asWFHl/i1dulSTJk3SnXfeqS5dumjZsmWKiopScnKyG44eANRcI08XAAD12caNGzVu3Dg99dRTGjx4sA4cOKDf//73kqSkpCRJko+Pj5566im1bdtW6enpuuuuu3T//fdrxYoVGjBggJYtW6aHHnpI33zzjSQpODi4RjXMmjVLTz75pFauXCl/f3+98MILSkpK0tNPP63evXtr9+7dmjx5soKCgjRx4sRy6xcXF+uzzz7T7NmzXdpHjBihbdu2nc9hAYALRogFADd4++23XcLl6NGj9frrr2vhwoWaPXu2Mxy2a9dOjzzyiO6//35niJ0xY4ZzvZiYGD3yyCOaOnWqVqxYIT8/P9lsNlksFkVGRp5XbTNmzNC1117rfP7II4/oySefdLbFxMQoLS1Nzz33XIUh9scff5TdbldERIRLe0REhLKzs8+rJgC4UIRYAHCDoUOHuny1HhQUJEn67LPPtHPnTi1cuNC5zG63q6ioSIWFhQoMDNT777+vxx57TGlpacrPz1dJSYmKiopUUFDgfJ0L0bdvX+f/Hz16VIcOHdKkSZM0efJkZ3tJSYlsNluVr2OxWFyeG4ZRrg0A6gohFgDcICgoSB06dCjX7nA4tGDBApczoWUCAgKUkZGhK6+8UlOmTNEjjzyisLAwffzxx5o0adI5L8KyWCwyDMOlraJ1zgzCDodDkvTCCy+oX79+Lv3KxvCerXnz5rJareXOuubk5JQ7OwsAdYUQCwC1KC4uTt98802FAVeSdu3apZKSEj355JPy8Sm91va1115z6ePn5ye73V5u3RYtWigrK8v5/Ntvv1VhYWGV9URERKh169b67rvvdOutt1ZrH/z8/NSnTx9t2rRJ11xzjbN906ZNuvrqq6v1GgDgboRYAKhFDz30kK666ipFRUXphhtukI+Pj7744gvt3btXjz76qNq3b6+SkhItX75cCQkJ+uSTT/Tss8+6vEbbtm118uRJvffee+rZs6cCAwMVGBioK664Qk8//bQuvfRSORwOzZo1S76+vuesaf78+brnnnsUGhqq0aNH69SpU9q1a5d++uknJSYmVrhOYmKixo8fr759+6p///56/vnnlZmZqSlTprjlOAFATTHFFgDUopEjR+rtt9/Wpk2bdMkll+jSSy/V0qVLFR0dLUnq1auXli5dqiVLlqhbt256+eWXtWjRIpfXGDBggKZMmaKbbrpJLVq00OOPPy5JevLJJxUVFaXLLrtMt9xyi/70pz8pMDDwnDXdeeedevHFF7Vq1Sp1795dl19+uVatWlXlvLY33XSTli1bpocffli9evXShx9+qHfeece5HwBQ1yzG2QOqAAAAAC/HmVgAAACYDiEWAAAApkOIBQAAgOkQYgEAAGA6hFgAAACYDiEWAAAApkOIBQAAgOkQYgEAAGA6hFgAAACYDiEWAAAApkOIBQAAgOn8PziDpJKFh4SoAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 800x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Cross-validation accuracy: 0.9600 (+/- 0.0777)\n"
     ]
    }
   ],
   "source": [
    "# 方法2: 使用逻辑回归进行分类\n",
    "log_reg_classifier = LogisticRegression(max_iter=200, random_state=42)\n",
    "evaluate_classifier(log_reg_classifier, X_train, X_test, y_train, y_test, \"Logistic Regression\")\n",
    "evaluate_with_cross_validation(log_reg_classifier, X_scaled, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "d255e601-3148-464e-a9b8-565f9114aa90",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Decision Tree Results:\n",
      "Accuracy: 1.0000\n",
      "Classification Report:\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       1.00      1.00      1.00        19\n",
      "           1       1.00      1.00      1.00        13\n",
      "           2       1.00      1.00      1.00        13\n",
      "\n",
      "    accuracy                           1.00        45\n",
      "   macro avg       1.00      1.00      1.00        45\n",
      "weighted avg       1.00      1.00      1.00        45\n",
      "\n",
      "Confusion Matrix:\n",
      "[[19  0  0]\n",
      " [ 0 13  0]\n",
      " [ 0  0 13]]\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAArEAAAIhCAYAAABZvOJuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAABa/0lEQVR4nO3de1yUZf7/8fcwCojAKCqnQsRTilqKhuspdb8eMKPczr/NQwfdPLVruKVmhlSmtuW6HaTTd7W2drOtbLVtMU3tZK4aWhrVNw3BEsQkwUREZu7fH8TkyEHQYWZueD0fj3nUXHPdc3/ue0Z4c801120xDMMQAAAAYCJ+3i4AAAAAqC9CLAAAAEyHEAsAAADTIcQCAADAdAixAAAAMB1CLAAAAEyHEAsAAADTIcQCAADAdAixAAAAMB1CLOBFq1atksVicd4CAwMVGRmp4cOHa/HixSooKGjQ/R84cEAWi0WrVq2q13a33nqrOnTo0CA11bbPM89VTbdbb73Vo3VVp7i4WIsWLVK/fv0UGhqqgIAAdejQQbfffrsyMzOd/Spf/wMHDnit1g4dOlQ5Z7t27dLQoUNls9lksVi0fPlybdmyRRaLRVu2bGmQOg4dOqSFCxdq9+7dVR5buHChLBZLg+z3XDp06ODy/mrZsqUSEhL01FNPyRcueFnduVmxYkW9/00DZtTM2wUAkFauXKlu3brp9OnTKigo0EcffaSlS5fqscce0+rVqzVixIgG2W9UVJQ++eQTderUqV7bLViwQH/4wx8apKba9jl16lTn/czMTM2YMUOPPPKIhg8f7mxv166dR+s62/79+zVq1CgVFBRo6tSpSktLU3BwsA4cOKDXXntNffv21bFjx2Sz2bxaZ6U1a9YoNDTUpe3222/XiRMn9Oqrr6p169bq0KGDgoKC9Mknnyg+Pr5B6jh06JDS0tLUoUMH9e7d2+WxyZMnKykpqUH2WxeDBg3SY489JqmizmXLlumuu+5ScXGx7rvvPq/VVZMVK1aobdu2PvEHHdCQCLGAD+jZs6f69evnvH/dddfp7rvv1uDBg3Xttdfqm2++UUREhNv3GxAQoF/96lf13q6+odcdOnXq5LLf0tJSSVKXLl1qPYaTJ08qMDDQIyN5drtdv/nNb/TDDz/ok08+Uc+ePZ2PDR06VJMmTdJ//vMfNW/evMFrqas+ffpUadu7d6+mTJmiMWPGuLSfz3vFHS6++GJdfPHFXtm3JLVq1crl2EeMGKH27dvr2Wef9ckQCzQVTCcAfFT79u31+OOP6/jx43r22WddHtu5c6euvvpqhYWFKTAwUH369NFrr71W5Tm+//57/e53v1NMTIz8/f0VHR2t66+/XocPH5ZU/XSCI0eOOLcJCAhQu3btNGjQIG3cuNHZp7rpBKWlpZo3b57i4uLk7++viy66SDNmzNCxY8dc+nXo0EFXXXWVMjIylJCQoBYtWqhbt27661//emEnTL98PP/uu+/q9ttvV7t27RQUFKRTp05JklavXq0BAwaoZcuWCg4O1ujRo7Vr164qz1PX83u2t956S3v27NG8efNcAuyZxowZo6CgoBqfY8OGDbrmmmt08cUXKzAwUJ07d9add96pH374waVfXV6nXbt26aqrrlJ4eLgCAgIUHR2tsWPH6rvvvnP2OXM6QeX5Ky8vV3p6uvMjdEk1Tif473//q+TkZLVp00aBgYHq1KmTZs2a5Xx83759uu2229SlSxcFBQXpoosuUnJysvbs2ePss2XLFl1++eWSpNtuu82534ULF0qq/iNzh8OhRx99VN26dVNAQIDCw8M1ceJEl2OTpGHDhqlnz57asWOHhgwZoqCgIHXs2FFLliyRw+Go8XWoTWhoqLp27er8d1SprKxMDz/8sLOmdu3a6bbbbtORI0dc+m3atEnDhg1TmzZt1KJFC7Vv317XXXedSkpKnOejunNdl+k/HTp00BdffKH333/feR4r/606HA49/PDDuuSSS9SiRQu1atVKl156qf7yl7+c13kAvI2RWMCHXXnllbJarfrggw+cbZs3b1ZSUpL69++vZ555RjabTa+++qpuuukmlZSUOAPJ999/r8svv1ynT5/Wfffdp0svvVRHjx7V+vXr9eOPP9Y4sjthwgRlZmZq0aJF6tq1q44dO6bMzEwdPXq0xjoNw9C4ceP03nvvad68eRoyZIg+//xzpaam6pNPPtEnn3yigIAAZ//PPvtMs2fP1ty5cxUREaEXXnhBd9xxhzp37qwrrrjigs/b7bffrrFjx+pvf/ubTpw4oebNm+uRRx7R/fffr9tuu03333+/ysrK9Kc//UlDhgzR9u3bnR+T1/X8Vufdd9+VJI0bN+68a9+/f78GDBigyZMny2az6cCBA1q2bJkGDx6sPXv2OEdxz/U6nThxQiNHjlRcXJyefvppRUREKD8/X5s3b9bx48er3ffYsWP1ySefaMCAAbr++us1e/bsWmtdv369kpOT1b17dy1btkzt27fXgQMHnOdBqvj4vU2bNlqyZInatWunwsJCvfjii+rfv7927dqlSy65RAkJCVq5cqXztRk7dqwk1Tr6Om3aND333HOaOXOmrrrqKh04cEALFizQli1blJmZqbZt2zr75ufn65ZbbtHs2bOVmpqqNWvWaN68eYqOjtbEiRPr9sKcoby8XAcPHlTXrl2dbQ6HQ9dcc40+/PBD3XvvvRo4cKBycnKUmpqqYcOGaefOnWrRooUOHDigsWPHasiQIfrrX/+qVq1a6fvvv1dGRobKyspq/QOnLtasWaPrr79eNptNK1askCTnv71HH31UCxcu1P33368rrrhCp0+f1ldffVXlD03ANAwAXrNy5UpDkrFjx44a+0RERBjdu3d33u/WrZvRp08f4/Tp0y79rrrqKiMqKsqw2+2GYRjG7bffbjRv3tzIysqq8bmzs7MNScbKlSudbcHBwcasWbNqrXvSpElGbGys835GRoYhyXj00Udd+q1evdqQZDz33HPOttjYWCMwMNDIyclxtp08edIICwsz7rzzzlr3e6bNmzcbkox//vOfzrbK8zlx4kSXvrm5uUazZs2Mu+66y6X9+PHjRmRkpHHjjTc62+p6fquTlJRkSDJKS0vrdAyV9WZnZ1f7uMPhME6fPm3k5OQYkox//etfzsfO9Trt3LnTkGS89dZbtdYQGxtrTJo0yaVNkjFjxgyXtsrzvXnzZmdbp06djE6dOhknT56sdR9nKi8vN8rKyowuXboYd999t7N9x44dVd6LlVJTU40zf119+eWXhiRj+vTpLv3++9//GpKM++67z9k2dOhQQ5Lx3//+16VvfHy8MXr06HPWGxsba1x55ZXG6dOnna/FlClTjObNmxtvv/22s98//vEPQ5LxxhtvuGxfeVwrVqwwDMMwXn/9dUOSsXv37hr3Wd25Nozq/72efW4MwzB69OhhDB06tMrzXnXVVUbv3r3PecyAWTCdAPBxxhnfgN63b5+++uor3XLLLZIqRoQqb1deeaXy8vL09ddfS5L+85//aPjw4erevXu99peYmKhVq1bp4Ycf1rZt23T69OlzbrNp0yZJqjJKecMNN6hly5Z67733XNp79+6t9u3bO+8HBgaqa9euysnJqVetNbnuuutc7q9fv17l5eWaOHGiyzkLDAzU0KFDnR/b1uf8NpTKL4TFxMSoWbNmat68uWJjYyVJX375pbPfuV6nzp07q3Xr1pozZ46eeeYZZWVlubXO//u//9P+/ft1xx13KDAwsMZ+5eXleuSRRxQfHy9/f381a9ZM/v7++uabb1yOpz42b94sqer7LTExUd27d6/yfouMjFRiYqJL26WXXlrn99s777yj5s2bO1+L559/Xk8++aRzxFiS3n77bbVq1UrJycku75vevXsrMjLS+R7r3bu3/P399bvf/U4vvviivv3223oe/flLTEzUZ599punTp2v9+vUqLi722L6BhkCIBXzYiRMndPToUUVHR0uScw7eH//4R+cv1crb9OnTJck5d/LIkSPn9WWY1atXa9KkSXrhhRc0YMAAhYWFaeLEicrPz69xm6NHj6pZs2ZVVgawWCyKjIysMhWhTZs2VZ4jICBAJ0+erHe91YmKinK5X3neLr/88irnbfXq1c5zVp/zW53KYJ6dnX1edTscDo0aNUpvvvmm7r33Xr333nvavn27tm3bJkku5+dcr5PNZtP777+v3r1767777lOPHj0UHR2t1NTUOv1hci6V8zzP9R5LSUnRggULNG7cOK1bt07//e9/tWPHDl122WXn/XpXvp/Ofp0lKTo62u3vt8GDB2vHjh3atm2b/va3v6lDhw6aOXOmPvroI2efw4cP69ixY/L396/y3snPz3e+bzp16qSNGzcqPDxcM2bMcH5h0RPzUufNm6fHHntM27Zt05gxY9SmTRv9z//8j3bu3Nng+wYaAnNiAR/273//W3a7XcOGDZMk5zy/efPm6dprr612m0suuURSxVJTZ3/JpS7atm2r5cuXa/ny5crNzdXatWs1d+5cFRQUKCMjo9pt2rRpo/Lych05csQlyBqGofz8fOeXdjzl7C8BVZ63119/3TmqWZ36nN/qjB49Ws8995zeeustzZ07t75la+/evfrss8+0atUqTZo0ydm+b9++ams91+vUq1cvvfrqqzIMQ59//rlWrVqlBx98UC1atDiv+s5U+Tqf6z328ssva+LEiXrkkUdc2n/44Qe1atXqvPZdGUrz8vKqhOhDhw65zId1B5vN5lw9pH///urfv78uu+wy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RZMnT9aIESO0ZMkS7d+/3/nY73//ez388MMaNGiQUlNT9fnnn59zf2fXaBhGg17alxALwGd465cEAJxLwfGafzadT7+66tKliywWi7788st6bbdt2zbdfPPNGjNmjN5++23t2rVL8+fPV1lZmbPPwoUL9cUXX2js2LHatGmT4uPjtWbNGknS5MmT9e2332rChAnas2eP+vXrpyeffLLafUVGRkr6ZUS2UkFBQZXRWXcixALwGd76JQEA5xIeEujWfnUVFham0aNH6+mnn9aJEyeqPH7s2LFqt/v4448VGxur+fPnq1+/furSpUu1H+137dpVd999t959911de+21WrlypfOxmJgYTZ06VW+++aZmz56t559/vtp9xcXFKTIyUhs2bHC2lZWV6f3339fAgQPrecR1R4gF4DO89UsCAM4lMS5MUbZA1fThuEUVX0BNjAtz+75XrFghu92uxMREvfHGG/rmm2/05Zdf6oknntCAAQOq3aZz587Kzc3Vq6++qv379+uJJ55wjrJK0smTJzVz5kxt2bJFOTk5+vjjj7Vjxw51795dkjRr1iytX79e2dnZyszM1KZNm5yPVTl2i0WzZs3SI488ojVr1mjv3r269dZbFRQUpN/+9rduPx+V+GIXAJ9R+Usiv6i02nmxFkmRDfRLAgBqY/WzKDU5XtNezpRFcvkZVRlsU5Pj3fqlrkpxcXHKzMzUokWLNHv2bOXl5aldu3bq27ev0tPTq93mmmuu0d13362ZM2fq1KlTGjt2rBYsWKCFCxdWHI/VqqNHj2rixIk6fPiw2rZtq2uvvVZpaWmSJLvdrhkzZui7775TaGiokpKS9Oc//7nGGu+9916dPHlS06dP148//qj+/fvr3XffVUhIiNvPRyWLUTlj2Melp6crPT1dBw4ckCT16NFDDzzwgMaMGVPn5yguLpbNZlNRUZFCQ0MbqFIAF6JydQKp+l8SrE4A4HyUlpYqOztbcXFxCgw8/09zWALQPWp7Peqa10wzEnvxxRdryZIl6ty5syTpxRdf1DXXXKNdu3apR48eXq4OgLsk9YxS+viEKr8kIvklAcAHJPWM0sj4SG3PLlTB8VKFh1R8OtQQI7ConWlGYqsTFhamP/3pT7rjjjvq1J+RWMA87A6DXxIA3MZdI7FwjyY1Ensmu92uf/7znzpx4kSNE5ol6dSpUzp16pTzfnFxsSfKA+AGVj+LBnRq4+0yAAA+ylSrE+zZs0fBwcEKCAjQ1KlTtWbNGsXHx9fYf/HixbLZbM5bTEyMB6sFAABAQzFViL3kkku0e/dubdu2TdOmTdOkSZOUlZVVY/958+apqKjIeTt48KAHqwUAAEBDMdV0An9/f+cXu/r166cdO3boL3/5i5599tlq+wcEBCggIMCTJQIAAMADTDUSezbDMFzmvAIAAKBpMM1I7H333acxY8YoJiZGx48f16uvvqotW7YoIyPD26UBAADAw0wTYg8fPqwJEyYoLy9PNptNl156qTIyMjRy5EhvlwYAAAAPM02I/d///V9vlwAAAOCzLBaL1qxZo3Hjxnm7FI8w9ZxYAACApiA/P1933XWXOnbsqICAAMXExCg5OVnvvfeet0uTJL355psaPXq02rZtK4vFot27dzf4Pk0zEgsAAOATHHYpZ6v002EpOEKKHSj5WRtsdwcOHNCgQYPUqlUrPfroo7r00kt1+vRprV+/XjNmzNBXX33VYPuuqxMnTmjQoEG64YYbNGXKFI/sk5FYAACAuspaKy3vKb14lfTGHRX/Xd6zor2BTJ8+XRaLRdu3b9f111+vrl27qkePHkpJSdG2bdtq3G7OnDnq2rWrgoKC1LFjRy1YsECnT592Pv7ZZ59p+PDhCgkJUWhoqPr27audO3dKknJycpScnKzWrVurZcuW6tGjh955550a9zVhwgQ98MADGjFihPsO/BwYiQUAAKiLrLXSaxMlGa7txXkV7Te+JMVf7dZdFhYWKiMjQ4sWLVLLli2rPN6qVasatw0JCdGqVasUHR2tPXv2aMqUKQoJCdG9994rSbrlllvUp08fpaeny2q1avfu3WrevLkkacaMGSorK9MHH3ygli1bKisrS8HBwW49tgtFiAUAADgXh13KmKMqAVb6uc0iZcyVuo1169SCffv2yTAMdevWrd7b3n///c7/79Chg2bPnq3Vq1c7Q2xubq7uuece53N36dLF2T83N1fXXXedevXqJUnq2LHjhRxGg2A6AQAAwLnkbJWKD9XSwZCKv6/o50aGURGaLRZLvbd9/fXXNXjwYEVGRio4OFgLFixQbm6u8/GUlBRNnjxZI0aM0JIlS7R//37nY7///e/18MMPa9CgQUpNTdXnn39+4QfjZoRYAACAc/npsHv71VGXLl1ksVj05Zdf1mu7bdu26eabb9aYMWP09ttva9euXZo/f77KysqcfRYuXKgvvvhCY8eO1aZNmxQfH681a9ZIkiZPnqxvv/1WEyZM0J49e9SvXz89+eSTbj22C0WIBQAAOJfgCPf2q6OwsDCNHj1aTz/9tE6cOFHl8WPHjlW73ccff6zY2FjNnz9f/fr1U5cuXZSTk1OlX9euXXX33Xfr3Xff1bXXXquVK1c6H4uJidHUqVP15ptvavbs2Xr++efddlzuQIgFAAA4l9iBUmi0pJo+1rdIoRdV9HOzFStWyG63KzExUW+88Ya++eYbffnll3riiSc0YMCAarfp3LmzcnNz9eqrr2r//v164oknnKOsknTy5EnNnDlTW7ZsUU5Ojj7++GPt2LFD3bt3lyTNmjVL69evV3Z2tjIzM7Vp0ybnY9UpLCzU7t27lZWVJUn6+uuvtXv3buXn57vxTLgixAIAAJyLn1VKWvrznbOD7M/3k5Y0yHqxcXFxyszM1PDhwzV79mz17NlTI0eO1Hvvvaf09PRqt7nmmmt09913a+bMmerdu7e2bt2qBQsWOB+3Wq06evSoJk6cqK5du+rGG2/UmDFjlJaWJkmy2+2aMWOGunfvrqSkJF1yySVasWJFjTWuXbtWffr00dixYyVJN998s/r06aNnnnnGjWfClcWonDHcBBQXF8tms6moqEihoaHeLgcAAHhIaWmpsrOzFRcXp8DAwPN/oqy1FasUnPklr9CLKgKsm5fXasxqez3qmtdYYgsAAKCu4q+uWEbLg1fsQvUIsQAAAPXhZ5Xihni7iiaPObEAAAAwHUIsAAAATIcQCwAAANMhxAIAAMB0CLEAAAAwHUIsAAAATIcQCwAAANMhxAIAADQCFotFb731lrfL8BhCLAAAQD3YHXbtyN+hd759Rzvyd8jusDf4PvPz83XXXXepY8eOCggIUExMjJKTk/Xee+81+L7P5fTp05ozZ4569eqlli1bKjo6WhMnTtShQ4fOvfEF4IpdAAAAdbQxZ6OWbF+iwyWHnW0RQRGamzhXI2JHNMg+Dxw4oEGDBqlVq1Z69NFHdemll+r06dNav369ZsyYoa+++qpB9ltXJSUlyszM1IIFC3TZZZfpxx9/1KxZs3T11Vdr586dDbZfRmIBAADqYGPORqVsSXEJsJJUUFKglC0p2pizsUH2O336dFksFm3fvl3XX3+9unbtqh49eiglJUXbtm2rcbs5c+aoa9euCgoKUseOHbVgwQKdPn3a+fhnn32m4cOHKyQkRKGhoerbt68zdObk5Cg5OVmtW7dWy5Yt1aNHD73zzjvV7sdms2nDhg268cYbdckll+hXv/qVnnzySX366afKzc1178k4AyOxAAAA52B32LVk+xIZMqo8ZsiQRRYt3b5Uw2OGy+pnddt+CwsLlZGRoUWLFqlly5ZVHm/VqlWN24aEhGjVqlWKjo7Wnj17NGXKFIWEhOjee++VJN1yyy3q06eP0tPTZbVatXv3bjVv3lySNGPGDJWVlemDDz5Qy5YtlZWVpeDg4DrXXVRUJIvFUmt9F4oQCwAAcA6ZBZlVRmDPZMhQfkm+MgsydXnk5W7b7759+2QYhrp161bvbe+//37n/3fo0EGzZ8/W6tWrnSE2NzdX99xzj/O5u3Tp4uyfm5ur6667Tr169ZIkdezYsc77LS0t1dy5c/Xb3/5WoaGh9a67rphOAAAAcA5HSo64tV9dGUbFyK/FYqn3tq+//roGDx6syMhIBQcHa8GCBS4f76ekpGjy5MkaMWKElixZov379zsf+/3vf6+HH35YgwYNUmpqqj7//PM67fP06dO6+eab5XA4tGLFinrXXB+EWAAAgHNoF9TOrf3qqkuXLrJYLPryyy/rtd22bdt08803a8yYMXr77be1a9cuzZ8/X2VlZc4+Cxcu1BdffKGxY8dq06ZNio+P15o1ayRJkydP1rfffqsJEyZoz5496tevn5588sla93n69GndeOONys7O1oYNGxp0FFYixAIAAJxTQniCIoIiZFH1I6IWWRQZFKmE8AS37jcsLEyjR4/W008/rRMnTlR5/NixY9Vu9/HHHys2Nlbz589Xv3791KVLF+Xk5FTp17VrV91999169913de2112rlypXOx2JiYjR16lS9+eabmj17tp5//vka66wMsN988402btyoNm3a1P9g64kQCwAAcA5WP6vmJs6VpCpBtvL+nMQ5bv1SV6UVK1bIbrcrMTFRb7zxhr755ht9+eWXeuKJJzRgwIBqt+ncubNyc3P16quvav/+/XriiSeco6ySdPLkSc2cOVNbtmxRTk6OPv74Y+3YsUPdu3eXJM2aNUvr169Xdna2MjMztWnTJudjZysvL9f111+vnTt36pVXXpHd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",
      "text/plain": [
       "<Figure size 800x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Cross-validation accuracy: 0.9533 (+/- 0.0680)\n",
      "Feature ranking:\n",
      "1. feature petal length (cm) (0.8933)\n",
      "2. feature petal width (cm) (0.0876)\n",
      "3. feature sepal width (cm) (0.0191)\n",
      "4. feature sepal length (cm) (0.0000)\n"
     ]
    }
   ],
   "source": [
    "# 方法3: 使用决策树进行分类\n",
    "tree_classifier = DecisionTreeClassifier(random_state=42)\n",
    "evaluate_classifier(tree_classifier, X_train, X_test, y_train, y_test, \"Decision Tree\")\n",
    "evaluate_with_cross_validation(tree_classifier, X_scaled, y)\n",
    "feature_importance_analysis(tree_classifier, feature_names)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "b4a3796e-9626-45f4-88f4-c34fd761ac77",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Random Forest Results:\n",
      "Accuracy: 1.0000\n",
      "Classification Report:\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       1.00      1.00      1.00        19\n",
      "           1       1.00      1.00      1.00        13\n",
      "           2       1.00      1.00      1.00        13\n",
      "\n",
      "    accuracy                           1.00        45\n",
      "   macro avg       1.00      1.00      1.00        45\n",
      "weighted avg       1.00      1.00      1.00        45\n",
      "\n",
      "Confusion Matrix:\n",
      "[[19  0  0]\n",
      " [ 0 13  0]\n",
      " [ 0  0 13]]\n"
     ]
    },
    {
     "data": {
      "image/png": "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oYd0++2366GHHlJxcbH+9re/6ZJLLlFaWppj9PGqq65ynKvzzjtPP//8szZu3OgIJu+++65uuOEG2Ww2x9fuJ5+fU33yySeSVGEEszb27dun888/X6NGjVJwcLBycnKUkpKiiy66SBkZGWrVqpUkKTExUa+++qoeffRR9ezZU0ePHtWuXbv0yy+/OJ7rdMd3qtjYWG3atEnXXXed2rdv7/gPofDwcOXk5FTo/9VXX2nAgAFq1aqV5syZo44dOyonJ0crV65UcXGxfHx8lJeXJ0lKSkpSWFiYjhw5onfffVcDBw7U2rVrNXDgQIWHhys1NVXx8fG68847NX78eEmqdvR17ty5evDBB3XzzTdr7ty5+uWXXzR79mz17dtXW7ZsUceOHR19T5w4oWuuuUZ33nmnpk6dqs8++0yPPPKIbDabHn744dq9QL/LzMxUixYtnGr8y1/+oqVLl+ree+/V/PnzlZeXpzlz5qhfv3766quvFBoaqqNHj2rIkCGKjo7WP//5T4WGhio3N1effvqpDh8+fEa1nGzx4sX685//rL179+rdd991euzNN9/U3XffrXvuuUdPPPGEvLy8tGfPHmVkZJz1foE6YwKoU0uWLDElmZs3bzZPnDhhHj582ExNTTXDwsLMSy+91Dxx4kSV25aUlJgnTpww77zzTrNnz55Oj0kyQ0NDzYKCAkdbbm6u6eXlZc6dO9fR1qdPHzMiIsI8duyYo62goMAMDg42T/4TkJqaakoyFyxY4LSf5cuXm5LM559/3tEWFRVlNm/e3Pzhhx8cbdu3bzclmeHh4ebRo0cd7e+9954pyVy5cmW15+nTTz81JVV6++6770zTNM2LL77YDAkJMQ8fPux0jrp27Wqee+65ZmlpqWmaf5zzMWPGOO0jOzvbbNKkiXnPPfc4tR8+fNgMCwszR44caZqmaf7888+mJPOpp56qtuYuXbqYl112WbV9yk2YMMGUZH777bc16l9+Pj799NMq+5SUlJhHjhwx/f39zX/84x+O9q5du5rDhw+vcruaHt9ll11W4fiioqLMYcOGObVlZmaakswlS5Y42i6//HKzRYsW5sGDB6vdx6nHc+LECfNPf/qTed111znaDx06ZEoyk5KSKmxT/lpnZmaapmmav/76q9m8eXPzqquucuqXnZ1t+vj4mLfccoujbezYsaYk86233nLq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oU6cOKGPP/5YkyZN0rfffltn+66po0ePqn///rrxxht111131cs+GYkFAACoqYyV0lNdpZevlt65s+x/n+pa1l5H7r77bhmGobS0NN1www3q1KmTunTposTERG3evLnK7aZNm6ZOnTrJz89P7dq106xZs3TixAnH41999ZUGDRqkwMBABQUFqVevXtq6daskKSsrSwkJCWrZsqX8/f3VpUsXffTRR1Xua/To0Xr44Yc1ePBg1x34aTASCwAAUBMZK6W3xkgyndsLcsraR74ixVzj0l3m5eUpNTVVjz32mPz9/Ss83qJFiyq3DQwM1NKlSxUREaGdO3fqrrvuUmBgoB544AFJ0q233qqePXsqJSVF3t7e2r59u5o2bSpJmjRpkoqLi/XZZ5/J399fGRkZCggIcOmxnS1CLAAAwOmU2qXUaaoQYKXf2wwpdbp0wTCXTi3Ys2ePTNPUBRdcUOttH3roIcf/b9u2raZOnarly5c7Qmx2drbuv/9+x3N37NjR0T87O1vXX3+9unXrJklq167d2RxGnWA6AQAAwOlkbZQKfqqmgykV/FjWz4VMsyw0G4ZR623//e9/a8CAAQoLC1NAQIBmzZql7Oxsx+OJiYkaP368Bg8erHnz5mnv3r2Ox+699149+uij6t+/v5KSkrRjx46zPxgXI8QCAACczpEDru1XQx07dpRhGPrmm29qtd3mzZs1atQoDR06VB988IG2bdummTNnqri42NFn9uzZ+vrrrzVs2DCtW7dOMTExevfddyVJ48eP1/fff6/Ro0dr586d6t27t55++mmXHtvZIsQCAACcTkCoa/vVUHBwsK688kr985//1NGjRys8/ttvv1W63RdffKGoqCjNnDlTvXv3VseOHZWVlVWhX6dOnXTffffpk08+0YgRI7RkyRLHY5GRkZowYYJWrFihqVOn6oUXXnDZcbkCIRYAAOB0ovpJQRGSqvpa35CC2pT1c7HFixfLbrcrLi5O77zzjr777jt98803WrRokfr27VvpNh06dFB2drbefPNN7d27V4sWLXKMskrSsWPHNHnyZK1fv15ZWVn64osvtGXLFnXu3FmSNGXKFH388cfKzMxUenq61q1b53isMnl5edq+fbsyMjIkSbt379b27duVm5vrwjPhjBALAABwOl7eUvz83++cGmR/vx8/r07Wi42OjlZ6eroGDRqkqVOnqmvXrhoyZIjWrl2rlJSUSre59tprdd9992ny5Mnq0aOHNm7cqFmzZjke9/b21i+//KIxY8aoU6dOGjlypIYOHark5GRJkt1u16RJk9S5c2fFx8fr/PPP1+LFi6usceXKlerZs6eGDRsmSRo1apR69uypZ5991oVnwplhls8YbgQKCgpks9mUn5+voKAgd5cDAADqSVFRkTIzMxUdHS1fX98zf6KMlWWrFJz8I6+gNmUB1sXLazVk1b0eNc1rLLEFAABQUzHXlC2jVY9X7ELlCLEAAAC14eUtRV/i7ioaPebEAgAAwHIIsQAAALAcQiwAAAAshxALAAAAyyHEAgAAwHIIsQAAALAcQiwAAAAshxALAADQABiGoffee8/dZdQbQiwAAEAt2Evt2pK7RR99/5G25G6RvdRe5/vMzc3VPffco3bt2snHx0eRkZFKSEjQ2rVr63zfp3PixAlNmzZN3bp1k7+/vyIiIjRmzBj99NNPp9/4LHDFLgAAgBpak7VG89Lm6UDhAUdbqF+opsdN1+CowXWyz3379ql///5q0aKFFixYoAsvvFAnTpzQxx9/rEmTJunbb7+tk/3WVGFhodLT0zVr1ix1795dv/76q6ZMmaJrrrlGW7durbP9MhILAABQA2uy1ihxfaJTgJWkg4UHlbg+UWuy1tTJfu+++24ZhqG0tDTdcMMN6tSpk7p06aLExERt3ry5yu2mTZumTp06yc/PT+3atdOsWbN04sQJx+NfffWVBg0apMDAQAUFBalXr16O0JmVlaWEhAS1bNlS/v7+6tKliz766KNK92Oz2bR69WqNHDlS559/vi6++GI9/fTT+vLLL5Wdne3ak3ESRmIBAABOw15q17y0eTJlVnjMlClDhuanzdegyEHy9vJ22X7z8vKUmpqqxx57TP7+/hUeb9GiRZXbBgYGaunSpYqIiNDOnTt11113KTAwUA888IAk6dZbb1XPnj2VkpIib29vbd++XU2bNpUkTZo0ScXFxfrss8/k7++vjIwMBQQE1Lju/Px8GYZRbX1nixALAABwGukH0yuMwJ7MlKncwlylH0zXRWEXuWy/e/bskWmauuCCC2q97UMPPeT4/23bttXUqVO1fPlyR4jNzs7W/fff73jujh07OvpnZ2fr+uuvV7du3SRJ7dq1q/F+i4qKNH36dN1yyy0KCgqqdd01xXQCAACA0zhUeMil/WrKNMtGfg3DqPW2//73vzVgwACFhYUpICBAs2bNcvp6PzExUePHj9fgwYM1b9487d271/HYvffeq0cffVT9+/dXUlKSduzYUaN9njhxQqNGjVJpaakWL15c65prgxALAABwGq39Wru0X0117NhRhmHom2++qdV2mzdv1qhRozR06FB98MEH2rZtm2bOnKni4mJHn9mzZ+vrr7/WsGHDtG7dOsXExOjdd9+VJI0fP17ff/+9Ro8erZ07d6p37956+umnq93niRMnNHLkSGVmZmr16tV1OgorEWIBAABOKzYkVqF+oTJU+YioIUNhfmGKDYl16X6Dg4N15ZVX6p///KeOHj1a4fHffvut0u2++OILRUVFaebMmerdu7c6duyorKysCv06deqk++67T5988olGjBihJUuWOB6LjIzUhAkTtGLFCk2dOlUvvPBClXWWB9jvvvtOa9as0TnnnFP7g60lQiwAAMBpeHt5a3rcdEmqEGTL70+Lm+bSH3WVW7x4sex2u+Li4vTOO+/ou+++0zfffKNFixapb9++lW7ToUMHZWdn680339TevXu1aNEixyirJB07dkyTJ0/W+vXrlZWVpS+++EJbtmxR586dJUlTpkzRxx9/rMzMTKWnp2vdunWOx05VUlKiG264QVu3btVrr70mu92u3Nxc5ebmOo38uhohFgAAoAYGRw3WwoELFeIX4tQe6heqhQMX1tk6sdHR0UpPT9egQYM0depUde3aVUOGDNHatWuVkpJS6TbXXnut7rvvPk2ePFk9evTQxo0bNWvWLMfj3t7e+uWXXzRmzBh16tRJI0eO1NChQ5WcnCxJstvtmjRpkjp37qz4+Hidf/75Vc5x/eGHH7Ry5Ur98MMP6tGjh8LDwx23jRs3uv6E/M4wy2cMNwIFBQWy2WzKz8+v83kaAADAcxQVFSkzM1PR0dHy9fU9q+eyl9qVfjBdhwoPqbVfa8WGxNbJCGxDVt3rUdO8xhJbAAAAteDt5e3SZbRwZphOAAAAAMshxAIAAMByCLEAAACwHEIsAABoNBrR79k9miteB0IsAABo8Jo2bSpJKiwsdHMlkP54HcpflzPB6gRAHbGXmkrLzNPBw0UKCfRVXHSwvL1qf+1rAMDZ8/b2VosWLXTw4EFJkp+fnwyDv8n1zTRNFRYW6uDBg2rR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PVWrVq3k7e1dYdT14MGDFUZnAaC+EGIBoA7FxsZq9+7dlQZcSdq6datKSkr05JNPysur7Le2b731llOfZs2ayW63V9i2devWysnJcdz/7rvvVFhYWG09oaGhatOmjb7//nvdeuutNTqGZs2aqVevXlq9erWuu+46R/vq1at17bXX1ug5AMDVCLEAUIcefvhhXX311YqMjNSNN94oLy8v7dixQzt37tSjjz6q9u3bq6SkRE8//bQSEhL0xRdf6Nlnn3V6jrZt2+rIkSNau3atunfvLj8/P/n5+enyyy/XM888o4svvlilpaWaNm2amjZtetqaZs+erXvvvVdBQUEaOnSojh8/rq1bt+rXX39VYmJipdskJiZq9OjR6t27t/r27avnn39e2dnZmjBhgkvOEwDUFktsAUAduvLKK/XBBx9o9erVuuiii3TxxRdr4cKFioqKkiT16NFDCxcu1Pz589W1a1e99tprmjt3rtNz9OvXTxMmTNBNN92k1q1ba8GCBZKkJ598UpGRkbr00kt1yy236K9//av8/PxOW9P48eP14osvaunSperWrZsuu+wyLV26tNp1bW+66SY99dRTmjNnjnr06KHPPvtMH330keM4AKC+GeapE6oAAAAAD8dILAAAACyHEAsAAADLIcQCAADAcgixAAAAsBxCLAAAACyHEAsAAADLIcQCAADAcgixAAAAsBxCLAAAACyHEAsAAADLIcQCAADAcv4/F2oMssdgClgAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 800x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Cross-validation accuracy: 0.9667 (+/- 0.0422)\n",
      "Feature ranking:\n",
      "1. feature petal width (cm) (0.4340)\n",
      "2. feature petal length (cm) (0.4173)\n",
      "3. feature sepal length (cm) (0.1041)\n",
      "4. feature sepal width (cm) (0.0446)\n"
     ]
    }
   ],
   "source": [
    "# 方法4: 使用随机森林进行分类\n",
    "forest_classifier = RandomForestClassifier(n_estimators=100, random_state=42)\n",
    "evaluate_classifier(forest_classifier, X_train, X_test, y_train, y_test, \"Random Forest\")\n",
    "evaluate_with_cross_validation(forest_classifier, X_scaled, y)\n",
    "feature_importance_analysis(forest_classifier, feature_names)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "30282ed7-6176-4a76-932d-2a3dab531a26",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Comparison of different classifiers on Iris dataset:\n",
      "SVM: Accuracy = 0.9778\n",
      "Logistic Regression: Accuracy = 1.0000\n",
      "Decision Tree: Accuracy = 1.0000\n",
      "Random Forest: Accuracy = 1.0000\n"
     ]
    }
   ],
   "source": [
    "# 比较不同方法的性能\n",
    "print(\"\\nComparison of different classifiers on Iris dataset:\")\n",
    "classifiers = {\n",
    "    \"SVM\": svm_classifier,\n",
    "    \"Logistic Regression\": log_reg_classifier,\n",
    "    \"Decision Tree\": tree_classifier,\n",
    "    \"Random Forest\": forest_classifier\n",
    "}\n",
    "\n",
    "for name, clf in classifiers.items():\n",
    "    y_pred = clf.predict(X_test)\n",
    "    acc = accuracy_score(y_test, y_pred)\n",
    "    print(f\"{name}: Accuracy = {acc:.4f}\")"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
